module.exports = (option, app) => {
  return async function errorHandler(ctx, next) {
    // console.log("errrr");
    try {
      await next();
    } catch (err) {
      //所有的异常都在app上触发一个error 事件，框架会记录一条错误日志
      ctx.app.emit("error", err, ctx);
      const status = err.status || 500;
      // //生产环境是 500错误的详细错误内容不返回给客户端，可能有敏感信息
      // const error =
      //   status === 500 && ctx.app.config.env === "prod"
      //     ? "Internal Server Error"
      //     : err.message;
      // //从error 对象上读出各个属性，设置到响应中
      // ctx.body = { error };
      // if (status === 422) {
      //   ctx.body.detail = err.errors;
      // }
      // ctx.status = status;

      ctx.status = err.status;
      if (ctx.status === 422) {
        return (ctx.body = {
          msg: "fail",
          data: err.errors,
        });
      }
      ctx.body = {
        msg: "fail",
        data: error.message,
      };
    }
  };
};
